For example, if the programmer uses the standard I/O function printf() and the string copy function strcpy(), then the appropriate declarations for these functions are referenced by inserting the following instructions at the top of the source file:
# include <stdio.h>
# include <string.h>
These preprocessor directives* cause the declarations contained in the header files stdio.h and string.h to be inserted into the programmer's source file. Chapter 8 describes several useful standard functions and their header files.
Most environments provide additional specialized libraries and header files, and allow programmers to define new ones. The compiler must be alerted which of these non-standard libraries is in use, so that it can locate the needed functions when linking the completed program.
Think C provides header files declaring the Macintosh Toolbox ROM functions which enable the Macintosh interface, so they can be treated as a C function library.